#pragma once
#include "vn/Mem.h"


void MemTest() {_test_func_;
	assert(Mem::Sign(-5) == -1);
	assert(Mem::Sign(0)  ==  1);
	assert(Mem::Sign(5)  ==  1);

	assert(Mem::Compare("11", "11", 2) ==  0);
	assert(Mem::Compare("11", "22", 2) == -1);
	assert(Mem::Compare("22", "11", 2) ==  1);

	assert(Mem::Compare("_1", "_2", 2) == -1);
	assert(Mem::Compare("_2", "_1", 2) ==  1);

	assert(Mem::Compare("_1_", "_2_", 2) == -1);
	assert(Mem::Compare("_2_", "_1_", 2) ==  1);

	assert(Mem::Compare("1_", "2_", 2) == -1);
	assert(Mem::Compare("2_", "1_", 2) ==  1);


	assert(Mem::FindFirst("0123456789", 10, '0') == 0);
	assert(Mem::FindFirst("0123456789", 10, '7') == 7);
	assert(Mem::FindFirst("0123456789", 10, '9') == 9);
	assert(Mem::FindFirst("0123456789", 10, 'A') == -1);

	assert(Mem::FindFirst("0123456789", 10, "0", 1) == 0);
	assert(Mem::FindFirst("0123456789", 10, "7", 1) == 7);
	assert(Mem::FindFirst("0123456789", 10, "9", 1) == 9);
	assert(Mem::FindFirst("0123456789", 10, "A", 1) == -1);

	assert(Mem::FindFirst("nanano", 6, "na",   2) == 0);
	assert(Mem::FindFirst("nanano", 6, "ana",  3) == 1);
	assert(Mem::FindFirst("nanano", 6, "nano", 4) == 2);
	assert(Mem::FindFirst("nanano", 6, "nanano", 6) == 0);
	assert(Mem::FindFirst("nanano", 6, "nananoi", 7) == -1);
}
